//package org.convallaria.system.biz.controller.other;
//
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.convallaria.infrastruct.rg.service.ServiceDiscoveryManager;
//import org.springframework.cloud.client.ServiceInstance;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * 系统信息控制器
// * 提供系统相关的API接口，演示服务发现功能
// *
// * @author gjh
// * @since 2025-01-27
// */
//@Slf4j
//@RestController
//@RequestMapping("/api/system")
//@RequiredArgsConstructor
//public class SystemInfoController {
//
//    private final ServiceDiscoveryManager serviceDiscoveryManager;
//
//    /**
//     * 获取系统信息
//     *
//     * @return 系统信息
//     */
//    @GetMapping("/info")
//    public Map<String, Object> getSystemInfo() {
//        Map<String, Object> info = new HashMap<>();
//        info.put("serviceName", "convallaria-system-biz");
//        info.put("version", "1.0.0");
//        info.put("status", "UP");
//        info.put("timestamp", System.currentTimeMillis());
//        info.put("description", "Convallaria系统业务模块");
//
//        // 获取当前服务的实例信息
//        List<ServiceInstance> instances = serviceDiscoveryManager.getInstances("convallaria-system-biz");
//        info.put("instances", instances.size());
//
//        return info;
//    }
//
//    /**
//     * 获取用户信息
//     *
//     * @param userId 用户ID
//     * @return 用户信息
//     */
//    @GetMapping("/userinfo/{userId}")
//    public Map<String, Object> getUserInfo(@PathVariable String userId) {
//        Map<String, Object> userInfo = new HashMap<>();
//        userInfo.put("userId", userId);
//        userInfo.put("username", "user_" + userId);
//        userInfo.put("email", "user" + userId + "@convallaria.com");
//        userInfo.put("status", "ACTIVE");
//        userInfo.put("timestamp", System.currentTimeMillis());
//
//        return userInfo;
//    }
//
//    /**
//     * 健康检查
//     *
//     * @return 健康状态
//     */
//    @GetMapping("/health")
//    public Map<String, Object> healthCheck() {
//        Map<String, Object> health = new HashMap<>();
//        health.put("status", "UP");
//        health.put("service", "convallaria-system-biz");
//        health.put("timestamp", System.currentTimeMillis());
//
//        // 检查数据库连接等
//        health.put("database", "UP");
//        health.put("cache", "UP");
//
//        return health;
//    }
//
//    /**
//     * 获取服务状态
//     *
//     * @param serviceName 服务名称
//     * @return 服务状态
//     */
//    @GetMapping("/status")
//    public Map<String, Object> getServiceStatus(@RequestParam String serviceName) {
//        boolean available = serviceDiscoveryManager.isServiceAvailable(serviceName);
//        int totalInstances = serviceDiscoveryManager.getInstanceCount(serviceName);
//        int healthyInstances = serviceDiscoveryManager.getHealthyInstanceCount(serviceName);
//
//        Map<String, Object> status = new HashMap<>();
//        status.put("serviceName", serviceName);
//        status.put("available", available);
//        status.put("totalInstances", totalInstances);
//        status.put("healthyInstances", healthyInstances);
//        status.put("timestamp", System.currentTimeMillis());
//
//        return status;
//    }
//
//    /**
//     * 获取所有服务列表
//     *
//     * @return 服务列表
//     */
//    @GetMapping("/services")
//    public Map<String, Object> getServices() {
//        List<String> services = serviceDiscoveryManager.getServices();
//
//        Map<String, Object> result = new HashMap<>();
//        result.put("services", services);
//        result.put("count", services.size());
//        result.put("timestamp", System.currentTimeMillis());
//
//        return result;
//    }
//
//    /**
//     * 获取服务实例列表
//     *
//     * @param serviceName 服务名称
//     * @return 实例列表
//     */
//    @GetMapping("/services/{serviceName}/instances")
//    public Map<String, Object> getServiceInstances(@PathVariable String serviceName) {
//        List<ServiceInstance> instances = serviceDiscoveryManager.getInstances(serviceName);
//
//        Map<String, Object> result = new HashMap<>();
//        result.put("serviceName", serviceName);
//        result.put("instances", instances);
//        result.put("count", instances.size());
//        result.put("timestamp", System.currentTimeMillis());
//
//        return result;
//    }
//}
